home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 14.1 KB | 477 lines | [TEXT/MPS ] |
- (*
- File: Printing.mod
-
- Contains: Print Manager Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$IF UNDEFINED STRICT_WINDOWS*)
- (*$SET STRICT_WINDOWS FALSE*)
- (*$END*)
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE Printing;
-
- IMPORT SYSTEM, Types, Quickdraw, Dialogs;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
-
- CONST
- iPFMaxPgs* = 128;
- iPrPgFract* = 120; (*Page scale factor. ptPgSize (below) is in units of 1/iPrPgFract*)
- iPrPgFst* = 1; (*Page range constants*)
- iPrPgMax* = 9999;
- iPrRelease* = 3; (*Current version number of the code.*)
- iPrSavPFil* = -1;
- iPrAbort* = $0080;
- iPrDevCtl* = 7; (*The PrDevCtl Proc's ctl number*)
- lPrReset* = $00010000; (*The PrDevCtl Proc's CParam for reset*)
- lPrLineFeed* = $00030000;
- lPrLFStd* = $0003FFFF; (*The PrDevCtl Proc's CParam for std paper advance*)
- lPrLFSixth* = $0003FFFF;
- lPrPageEnd* = $00020000; (*The PrDevCtl Proc's CParam for end page*)
- lPrDocOpen* = $00010000;
- lPrPageOpen* = $00040000;
- lPrPageClose* = $00020000;
- lPrDocClose* = $00050000;
- iFMgrCtl* = 8; (*The FMgr's Tail-hook Proc's ctl number*)
- iMscCtl* = 9; (*The FMgr's Tail-hook Proc's ctl number*)
- iPvtCtl* = 10; (*The FMgr's Tail-hook Proc's ctl number*)
-
- pPrGlobals* = $00000944; (*The PrVars lo mem area*:*)
- bDraftLoop* = 0;
- bSpoolLoop* = 1;
- bUser1Loop* = 2;
- bUser2Loop* = 3;
- fNewRunBit* = 2;
- fHiResOK* = 3;
- fWeOpenedRF* = 4;
- (*Driver constants *)
- iPrBitsCtl* = 4;
- lScreenBits* = 0;
- lPaintBits* = 1;
- lHiScreenBits* = $00000002; (*The Bitmap Print Proc's Screen Bitmap param*)
- lHiPaintBits* = $00000003; (*The Bitmap Print Proc's Paint [sq pix] param*)
- iPrIOCtl* = 5;
- iPrEvtCtl* = 6; (*The PrEvent Proc's ctl number*)
- lPrEvtAll* = $0002FFFD; (*The PrEvent Proc's CParam for the entire screen*)
- lPrEvtTop* = $0001FFFD; (*The PrEvent Proc's CParam for the top folder*)
- iPrDrvrRef* = -3;
-
- getRslDataOp* = 4;
- setRslOp* = 5;
- draftBitsOp* = 6;
- noDraftBitsOp* = 7;
- getRotnOp* = 8;
- NoSuchRsl* = 1;
- OpNotImpl* = 2; (*the driver doesn't support this opcode*)
- RgType1* = 1;
-
- feedCut* = 0;
- feedFanfold* = 1;
- feedMechCut* = 2;
- feedOther* = 3;
-
-
- TYPE
- TFeed* = Types.SInt8;
-
-
- CONST
- scanTB* = 0;
- scanBT* = 1;
- scanLR* = 2;
- scanRL* = 3;
-
-
- TYPE
- TScan* = Types.SInt8;
-
- (* A Types.Rect Types.Ptr *)
- TPRect* = POINTER TO Types.Rect;
-
- PrIdleProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ;
- PrIdleUPP* = Types.UniversalProcPtr;
-
- CONST
- uppPrIdleProcInfo* = $00000000; (* PROCEDURE ; *)
-
- PROCEDURE NewPrIdleProc*(userRoutine: PrIdleProcPtr): PrIdleUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallPrIdleProc*(userRoutine: PrIdleUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
- TYPE
- PItemProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theDialog: Dialogs.DialogPtr; item: INTEGER);
- PItemUPP* = Types.UniversalProcPtr;
-
- CONST
- uppPItemProcInfo* = $000002C0; (* PROCEDURE (4 byte param, 2 byte param); *)
-
- PROCEDURE NewPItemProc*(userRoutine: PItemProcPtr): PItemUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallPItemProc*(theDialog: Dialogs.DialogPtr; item: INTEGER; userRoutine: PItemUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- TYPE
- TPrPort* = RECORD
- gPort*: Quickdraw.GrafPort; (*The Printer's graf port.*)
- gProcs*: Quickdraw.QDProcs; (*..and its procs*)
- lGParam1*: LONGINT; (*16 bytes for private parameter storage.*)
- lGParam2*: LONGINT;
- lGParam3*: LONGINT;
- lGParam4*: LONGINT;
- fOurPtr*: BOOLEAN; (*Whether the PrPort allocation was done by us.*)
- fOurBits*: BOOLEAN; (*Whether the Quickdraw.BitMap allocation was done by us.*)
- END;
-
- TPPrPort* = POINTER TO TPrPort;
-
- (* Printing Graf Port. All printer imaging, whether spooling, banding, etc, happens "thru" a Quickdraw.GrafPort.
- This is the "PrPeek" record. *)
- TPrInfo* = RECORD
- iDev*: INTEGER; (*Font mgr/QuickDraw device code*)
- iVRes*: INTEGER; (*Resolution of device, in device coordinates*)
- iHRes*: INTEGER; (*..note: V before H => compatable with Types.Point.*)
- rPage*: Types.Rect; (*The page (printable) rectangle in device coordinates.*)
- END;
-
- TPPrInfo* = POINTER TO TPrInfo;
-
- (* Print Info Record*: The parameters needed for page composition. *)
- TPrStl* = RECORD
- wDev*: INTEGER;
- iPageV*: INTEGER;
- iPageH*: INTEGER;
- bPort*: Types.SInt8;
- feed*: TFeed;
- END;
-
- TPPrStl* = POINTER TO TPrStl;
-
- TPrXInfo* = RECORD
- iRowBytes*: INTEGER;
- iBandV*: INTEGER;
- iBandH*: INTEGER;
- iDevBytes*: INTEGER;
- iBands*: INTEGER;
- bPatScale*: Types.SInt8;
- bUlThick*: Types.SInt8;
- bUlOffset*: Types.SInt8;
- bUlShadow*: Types.SInt8;
- scan*: TScan;
- bXInfoX*: Types.SInt8;
- END;
-
- TPPrXInfo* = POINTER TO TPrXInfo;
-
- TPrJob* = RECORD
- iFstPage*: INTEGER; (*Page Range.*)
- iLstPage*: INTEGER;
- iCopies*: INTEGER; (*No. copies.*)
- bJDocLoop*: Types.SInt8; (*The Doc style*: Draft, Spool, .., and ..*)
- fFromUsr*: BOOLEAN; (*Printing from an User's App (not PrApp) flag*)
- pIdleProc*: PrIdleUPP; (*The Proc called while waiting on IO etc.*)
- pFileName*: Types.StringPtr; (*Spool File Name*: NIL for default.*)
- iFileVol*: INTEGER; (*Spool File vol, set to 0 initially*)
- bFileVers*: Types.SInt8; (*Spool File version, set to 0 initially*)
- bJobX*: Types.SInt8; (*An eXtra byte.*)
- END;
-
- TPPrJob* = POINTER TO TPrJob;
-
- (* Print Job*: Print "form" for a single print request. *)
- TPrFlag1* = (*ΔΔPACKEDΔΔ*) RECORD
- f15*: BOOLEAN;
- f14*: BOOLEAN;
- f13*: BOOLEAN;
- f12*: BOOLEAN;
- f11*: BOOLEAN;
- f10*: BOOLEAN;
- f9*: BOOLEAN;
- f8*: BOOLEAN;
- f7*: BOOLEAN;
- f6*: BOOLEAN;
- f5*: BOOLEAN;
- f4*: BOOLEAN;
- f3*: BOOLEAN;
- f2*: BOOLEAN;
- fLstPgFst*: BOOLEAN;
- fUserScale*: BOOLEAN;
- END;
-
- TPrint* = RECORD
- iPrVersion*: INTEGER; (*(2) Printing software version*)
- prInfo*: TPrInfo; (*(14) the PrInfo data associated with the current style.*)
- rPaper*: Types.Rect; (*(8) The paper rectangle [offset from rPage]*)
- prStl*: TPrStl; (*(8) This print request's style.*)
- prInfoPT*: TPrInfo; (*(14) Print Sound.Time Imaging metrics*)
- prXInfo*: TPrXInfo; (*(16) Print-time (expanded) Print info record.*)
- prJob*: TPrJob; (*(20) The Print Job request (82) Total of the above; 120-82* = 38 bytes needed to fill 120*)
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- printX*: ARRAY 19 (*ΔΔ[0..18]ΔΔ*) OF INTEGER;
- (*ΔΔ );
- 1: (
- prFlag1*: TPrFlag1;
- iZoomMin*: INTEGER;
- iZoomMax*: INTEGER;
- hDocName*: Types.StringHandle;
- );*)
- END;
-
- TPPrint* = POINTER TO TPrint;
- THPrint* = HANDLE TO TPrint (*ΔΔ POINTER TO TPPrint*);
-
- (* The universal 120 byte printing record *)
- TPrStatus* = RECORD
- iTotPages*: INTEGER; (*Total pages in Print File.*)
- iCurPage*: INTEGER; (*Current page number*)
- iTotCopies*: INTEGER; (*Total copies requested*)
- iCurCopy*: INTEGER; (*Current copy number*)
- iTotBands*: INTEGER; (*Total bands per page.*)
- iCurBand*: INTEGER; (*Current band number*)
- fPgDirty*: BOOLEAN; (*True if current page has been written to.*)
- fImaging*: BOOLEAN; (*Set while in band's DrawPic call.*)
- hPrint*: THPrint; (*Types.Handle to the active Printer record*)
- pPrPort*: TPPrPort; (*Types.Ptr to the active PrPort*)
- hPic*: Quickdraw.PicHandle; (*Types.Handle to the active Quickdraw.Picture*)
- END;
-
- TPPrStatus* = POINTER TO TPrStatus;
-
- (* Print Status*: Print information during *)
- TPfPgDir* = RECORD
- iPages*: INTEGER;
- iPgPos*: ARRAY 129 (*ΔΔ[0..128]ΔΔ*) OF LONGINT; (*ARRAY [0..iPfMaxPgs] OF LONGINT*)
- END;
-
- TPPfPgDir* = POINTER TO TPfPgDir;
- THPfPgDir* = HANDLE TO TPfPgDir (*ΔΔ POINTER TO TPPfPgDir*);
-
- (* PicFile* = a TPfHeader followed by n QuickDraw Pics (whose PicSize is invalid!) *)
- (* This is the Printing Dialog Record. Only used by folks appending their own
- DITLs to the print dialogs. Print Dialog*: The Dialog Stream object. *)
- (*$IF STRICT_WINDOWS *)
- TPPrDlg* = Types.Ptr;
-
- TPPrDlgRef* = Types.Ptr;
-
- (*$ELSE*)
- TPrDlg* = RECORD
- Dlg*: Dialogs.DialogRecord; (*The Dialog window*)
- pFltrProc*: Dialogs.ModalFilterUPP; (*The Filter Proc.*)
- pItemProc*: PItemUPP; (*The Item evaluating proc.*)
- hPrintUsr*: THPrint; (*The user's print record.*)
- fDoIt*: BOOLEAN;
- fDone*: BOOLEAN;
- lUser1*: LONGINT; (*Four longs for apps to hang global data.*)
- lUser2*: LONGINT; (*Plus more stuff needed by the particular*)
- lUser3*: LONGINT; (*printing dialog.*)
- lUser4*: LONGINT;
- END;
-
- TPPrDlg* = POINTER TO TPrDlg;
-
- TPPrDlgRef* = TPPrDlg;
-
- (*$END*)
- PDlgInitProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (hPrint: THPrint): TPPrDlg;
- PDlgInitUPP* = Types.UniversalProcPtr;
-
- CONST
- uppPDlgInitProcInfo* = $000000F0; (* PROCEDURE (4 byte param): 4 byte result; *)
-
- PROCEDURE NewPDlgInitProc*(userRoutine: PDlgInitProcPtr): PDlgInitUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallPDlgInitProc*(hPrint: THPrint; userRoutine: PDlgInitUPP): TPPrDlg;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- TYPE
- TGnlData* = RECORD
- iOpCode*: INTEGER;
- iError*: INTEGER;
- lReserved*: LONGINT; (*more fields here depending on call*)
- END;
-
- TRslRg* = RECORD
- iMin*: INTEGER;
- iMax*: INTEGER;
- END;
-
- TRslRec* = RECORD
- iXRsl*: INTEGER;
- iYRsl*: INTEGER;
- END;
-
- TGetRslBlk* = RECORD
- iOpCode*: INTEGER;
- iError*: INTEGER;
- lReserved*: LONGINT;
- iRgType*: INTEGER;
- xRslRg*: TRslRg;
- yRslRg*: TRslRg;
- iRslRecCnt*: INTEGER;
- rgRslRec*: ARRAY 27 (*ΔΔ[0..26]ΔΔ*) OF TRslRec;
- END;
-
- TSetRslBlk* = RECORD
- iOpCode*: INTEGER;
- iError*: INTEGER;
- lReserved*: LONGINT;
- hPrint*: THPrint;
- iXRsl*: INTEGER;
- iYRsl*: INTEGER;
- END;
-
- TDftBitsBlk* = RECORD
- iOpCode*: INTEGER;
- iError*: INTEGER;
- lReserved*: LONGINT;
- hPrint*: THPrint;
- END;
-
- TGetRotnBlk* = RECORD
- iOpCode*: INTEGER;
- iError*: INTEGER;
- lReserved*: LONGINT;
- hPrint*: THPrint;
- fLandscape*: BOOLEAN;
- bXtra*: Types.SInt8;
- END;
-
-
- PROCEDURE PrPurge*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $A800, $0000, $A8FD;
- (*$END*)
- PROCEDURE PrNoPurge*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $B000, $0000, $A8FD;
- (*$END*)
- PROCEDURE PrOpen*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $C800, $0000, $A8FD;
- (*$END*)
- PROCEDURE PrClose*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $D000, $0000, $A8FD;
- (*$END*)
- PROCEDURE PrintDefault*(hPrint: THPrint);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $2004, $0480, $A8FD;
- (*$END*)
- PROCEDURE PrValidate*(hPrint: THPrint): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $5204, $0498, $A8FD;
- (*$END*)
- PROCEDURE PrStlDialog*(hPrint: THPrint): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $2A04, $0484, $A8FD;
- (*$END*)
- PROCEDURE PrJobDialog*(hPrint: THPrint): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $3204, $0488, $A8FD;
- (*$END*)
- PROCEDURE PrStlInit*(hPrint: THPrint): TPPrDlg;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $3C04, $040C, $A8FD;
- (*$END*)
- PROCEDURE PrJobInit*(hPrint: THPrint): TPPrDlg;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $4404, $0410, $A8FD;
- (*$END*)
- PROCEDURE PrJobMerge*(hPrintSrc: THPrint; hPrintDst: THPrint);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $5804, $089C, $A8FD;
- (*$END*)
- PROCEDURE PrDlgMain*(hPrint: THPrint; pDlgInit: PDlgInitUPP): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $4A04, $0894, $A8FD;
- (*$END*)
- PROCEDURE PrOpenDoc*(hPrint: THPrint; pPrPort: TPPrPort; pIOBuf: Types.Ptr): TPPrPort;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $0400, $0C00, $A8FD;
- (*$END*)
- PROCEDURE PrCloseDoc*(pPrPort: TPPrPort);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $0800, $0484, $A8FD;
- (*$END*)
- PROCEDURE PrOpenPage*(pPrPort: TPPrPort; pPageFrame: TPRect);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $1000, $0808, $A8FD;
- (*$END*)
- PROCEDURE PrClosePage*(pPrPort: TPPrPort);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $1800, $040C, $A8FD;
- (*$END*)
- PROCEDURE PrPicFile*(hPrint: THPrint; pPrPort: TPPrPort; pIOBuf: Types.Ptr; pDevBuf: Types.Ptr; VAR prStatus: TPrStatus);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $6005, $1480, $A8FD;
- (*$END*)
- PROCEDURE PrError*(): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $BA00, $0000, $A8FD;
- (*$END*)
- PROCEDURE PrSetError*(iErr: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $C000, $0200, $A8FD;
- (*$END*)
- PROCEDURE PrGeneral*(pData: Types.Ptr);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $7007, $0480, $A8FD;
- (*$END*)
- PROCEDURE PrDrvrOpen*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $8000, $0000, $A8FD;
- (*$END*)
- PROCEDURE PrDrvrClose*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $8800, $0000, $A8FD;
- (*$END*)
- PROCEDURE PrCtlCall*(iWhichCtl: INTEGER; lParam1: LONGINT; lParam2: LONGINT; lParam3: LONGINT);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $A000, $0E00, $A8FD;
- (*$END*)
- PROCEDURE PrDrvrDCE*(): Types.Handle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $9400, $0000, $A8FD;
- (*$END*)
- PROCEDURE PrDrvrVers*(): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $9A00, $0000, $A8FD;
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END Printing.
-